У меня такая же проблема с usb2 pny 32gb ntfs отформатированным pendrive. Проблема с возвратом в ядро 3.8.0-27 решает проблему. Я запускаю xubuntu 13.04 64 бит.
Кажется, все в порядке с моими usb2 kingston ntfs pendrives, так что, возможно, связанный с чипом чипсет марки с этим ядром?
Может кто-нибудь подтвердить, что это новая ошибка? [!d2 ]
ПРИМЕЧАНИЕ. Хорошей практикой является использование кавычек вокруг переменной, с которой вы работаете, так что это единственная переменная, которую вы имеете. Кроме того, чтобы вы не вводили новые переменные.
Есть несколько других способов достижения одного и того же результата.
Ниже перечислены некоторые из них.
abc="1 hello world"; echo "$abc" | awk '{print $1}'
или
abc="mp4 hello world" && echo "$abc" | awk '{print $1}'
, или если вы хотите, чтобы новая переменная, в соответствии с подстановкой команды, использовала обратные элементы «` »и« $ (command) », все еще являются действительными способами достижения результатов, которые вы после. Более подробную информацию можно найти здесь.
с отметками обратного хода:
abc="mp4 hello world"; L=`echo "$abc" | awk '{print $1}'`; echo "$L"
с «$ (команда)»:
abc="1 hello world"; L="$(echo "$abc" | awk '{print $1}')"; echo "$L"
оба будут создавать новую переменную «$ L», которая присваивается то, что вы указали.
Все, что вам нужно, это добавить echo $abc вместо $abc, например:
abc="1 hello world"; L=$(echo $abc|awk '{print $1}'); echo $L
Проблема с исходным кодом, как уже упоминалось, заключается в том, что отсутствует эхо. Однако, хотя в другом плакате упоминалось, что вы всегда должны указывать переменные, это неверно. Часто цитирование переменной поможет разрешить возможное неоднозначное имя переменной, она часто вызывает другие проблемы, мешая другим цитированию. Правильным способом указать переменную в таких случаях было бы использование фигурных скобок вокруг имени переменной, а не цитата вокруг всей переменной. Например, исходный код можно было бы переписать как: abc="1 hello world"; L=$(echo ${abc}|awk '{print $1}'); echo ${L}
О, @heemayl, вы забыли процитировать $ 1 в своем примере, что равно как и поставить цитату вокруг этой переменной doesn ' т.
В вашей команде ... $($abc|awk '{print $1}'); ... содержимое $abc выполняется как команда. Поэтому ошибка.
Вы можете проверить это в терминале с помощью:
$ 1 your text
1: command not found
Исправить свою версию:
abc="1 hello world"; L=$(echo "$abc"|awk '{print $1}'); echo $L
или использовать более короткую версию:
awk '{print $1}' <<< $(echo "1 your text")
Пример
% awk '{print $1}' <<< $(echo "1 hello world")
1
% awk '{print $1}' <<< $(echo "mp4 hello world")
mp4