Что еще вы могли бы сделать, is ls .?* Или ls .!(|), который покажет вам все в текущем каталоге скрытых файлов / директорий в верхней части и других файлах / каталогах ниже
, например: из моего terminal
$ ls .?*
.bash_history .dmrc .macromedia .weather
.bash_logout .gksu.lock .profile .wgetrc
.bash_profile .bashrc.save .ICEauthority .toprc .Xauthority
.bashrc .lastdir .viminfo .xsession-errors
.bashrc~ .dircolors .lynxrc .vimrc .xsession-errors.old
..:
Baron
.adobe:
Flash_Player
.aptitude:
cache config
.cache:
compizconfig-1 rhythmbox
dconf shotwell
Теперь обратите внимание на приведенные выше результаты, он показывает вам каждый файл / каталог с его субдирером и любыми скрытыми файлами прямо ниже.
[1:0:248][ebaron@37signals:pts/4][~/Desktop]
$ ls .!(|)
.bash_aliases .bashrc1 .bashrc1~
..:
askapache-bash-profile.txt examples.desktop Public top-1m.csv
backups Firefox_wallpaper.png PycharmProjects top-1m.csv.zip
Desktop java_error_in_PYCHARM_17581.log Shotwell Import Log.txt topsites.txt
Documents Music Templates Videos
Downloads Pictures texput.log vmware
Извините, я не могу комментировать , чтобы объяснить разницу между ls .?* и @ cioby23 answer ls -d .[!.]* .??* И почему она на самом деле печатает скрытые файлы дважды, потому что буквально вы спрашиваете дважды .??*, .?*, .[!.]*, они - то же самое , поэтому добавление любого из них с разными командами будет печататься дважды.
Использование exit, а число - удобный способ передачи результатов вашего сценария. Он имитирует то, как команды bash выводят код возврата. С командами bash код возврата 0 обычно означает, что все выполнено успешно без ошибок. exit также заставляет ваш сценарий останавливать выполнение в этой точке и возвращаться в командную строку.
Любой код возврата больше 0 указывает на какую-либо ошибку, хотя иногда ошибка не является критичной для каждого команда [] d1]
Вы можете получить код возврата последней команды bash, используя переменную оболочки $?, например:
. ]$ echo "something"
something
$ echo $?
0
$ cp
cp: missing file operand
Try 'cp --help' for more information.
$ echo $?
1
Когда вы используете это в скрипте, вы можете запросить код возврата таким же образом, когда это будет выполнено. Итак, вы увидите, что наличие:
exit 2
exit 0
Является своего рода бессмысленным, поскольку вы никогда не сможете добраться до части exit 0.
Все само по себе, exit подразумевает выходное значение нуля или успешное завершение вашего скрипта. Вам не нужно добавлять нулевой аргумент в команду exit, чтобы указать успешное завершение. Ваш скрипт может (или, вероятно, будет) успешно выйти, хотя он проверяет ошибочное состояние. В этом случае вы специально хотите, чтобы он вышел с условием ошибки (или 1).
echo -e "Enter numbers 1-4" \c"
read NUM
case $NUM in
1) echo "one";;
2) echo "two";;
3) echo "three";;
4) echo "four";;
*) echo "invalid answer"
exit 1;;
esac
Команда exit в последней строке вовсе не обязательно должна быть там. Его можно было бы вызвать с нулевым или вообще не вызываемым. Без указания аргумента 1 для команды exit ответ во всех этих случаях на echo $? будет равен нулю.
Однако, указав аргумент 1 команде exit, ответ на echo $? будет 1. Итак, используйте аргумент 1 для команды exit, когда вы хотите указать, что сценарий вышел с условием ошибки.