как формовать Середину Функции в Bash

Быстрая и грязная острота.

mv `ls -A | grep -v new_directory` ./new_directory
3
задан 5 May 2009 в 23:18
2 ответа

Я не уверен, что понимаю Ваш вопрос, так как я думаю, что 'сокращение' будет работать так же, как Вы хотите это к.

someString="Hey there"

case `echo $someString | cut -c1-5` in
    "Hey t") echo Do something ;;
    "Go aw") echo Do something else ;;
    *) echo String is unrecognized ;;
esac
3
ответ дан 3 December 2019 в 04:57
  • 1
    Честно мне понравился Ваш лучше всего, поскольку я думаю it' s легче читать, но по некоторым причинам код не является работой при выполнении в сценарии удара. Я всегда получаю " Строка является unrecognized" результат. –  mrTomahawk 6 May 2009 в 13:44
  • 2
    Я просто понял, что использовал одинарные левые кавычки недостатка одинарной кавычки вокруг оператора выбора, который вызывал мою проблему. Я также просто узнал, что Ваш ответ будет также работать i другие оболочки, таким образом, я буду думать, что Ваш на самом деле лучше. –  mrTomahawk 6 May 2009 в 18:05
someString="Hey there"
case "${someString:0:5}" in
    "Hey t" ) echo Do something ;;
    "Go aw" ) echo Do something else ;;
    * )       echo unrecognized  ;;
 esac

Это могло также легко быть, покончили если, elif, еще. $ {someString:0:5} является расширением параметра. Узнайте больше от, он - раздел в руководстве удара, и также от Bash Gregs FAQ № 73.

Заметьте другой ответ, который использует сокращение. Оба будут работать, однако расширение Параметра быстрее, потому что его встроенные для избиения и рассмотренный лучше кодируют. сокращение было бы хорошо для вырезания через несколько строк текста.

7
ответ дан 3 December 2019 в 04:57
  • 1
    +1 для предоставления, что я думаю, корректный ответ: не встряхивайте в другом ' cut'. Bash отлично может сделать подстроки отдельно. –  wzzrd 22 June 2009 в 15:05

Теги

Похожие вопросы