Saya mencoba membuat direktori dan cd
masuk ke dalamnya:
Di ~ / .bashrc:
function abc() {
appname=$1
appdir="$HOME/code/$appname"
if [ mkdir $appdir -a cd $appdir ]; then
echo Success
else
echo Failed to create and switch directory
fi
}
Ketika saya memuat ulang bashrc ( . ~/.bashrc
) saya mendapatkan kesalahan:
bash: [: too many arguments
Failed to create and switch directory
Bagaimana cara saya memperbaikinya? Dan apa artinya [:
kesalahan itu?
Ps. Bisakah seseorang mengarahkan saya ke tutorial scripting "non-cryptic" bash?
if <COMMANDS>; then <COMMANDS>; fi
Jawaban:
Kesalahan utama dalam skrip Anda adalah bahwa
[
perintah, setara dengantest
perintah, digunakan untuk menguji kondisi, seperti perbandingan string, keberadaan file, dan sebagainya.Untuk menguji status keluar dari proses yang harus Anda gunakan
if
tanpa[
, jadi skrip Anda bisaIni dijelaskan dalam Bash Pitfalls: 9. if [grep foo myfile .
Saya sarankan Anda membaca GrayCat Bash Guide untuk memahami bash.
sumber
Sebuah prototipe dapat berupa:
touch newDirectory.sh
chmod +x newDirectory.sh
./newDirectory.sh anyName
/
Rekomendasi kecil: jika Anda baru, jangan main-main dengan
.bashrc
:)sumber
{
. 2) tidak pernah berjalanmkdir
. 3) Anda tidak mengujicd
status keluar. 4) Jangan menaruh ekstensi pada skrip. Apalagi.sh
saat itu bahkan bukan skrip-sh. 5) Menempatkannya dalam skrip mengalahkan tujuan fungsi. mywiki.wooledge.org/BashGuide{
sudah ada sebelum pengeditan.'
mkdir "$ {appdir}"'
(lihat kutu belakang)