スクリプトはMacコンピュータで実行され、出力ファイルを生成しますが、Ubuntuコンピュータはエラーメッセージを生成します。どちらの例も Bash シェルを使用しています。
1 - /var
2 - /etc :
1
: bad variable name: read: word
first_part(1).sh: 6: first_part(1).sh: Syntax error: newline unexpected (expecting ")")
-
echo "To scan through the directories /var and /etc type 1 or 2: "
echo "1 - /var"
echo "2 - /etc : "
read word
case $word in
1)
find /var -type d -follow -ls | awk '{print $3, $5, $6, $11}' > var.txt
echo "Your file containing /var information has been created."
;;
2)
find /etc -type d -follow -ls | awk '{print $3, $5, $6, $11}' > etc.txt
echo "Your file containing /etc information has been created."
;;
*)
echo "Please insert a valid input"
continue
;;
esac
答え1
次のようにファイルを実行するsh filename.sh
と、bash
私のUbuntu 12.04システムでソフトリンクsh
(使用;を参照)/bin/sh
/bin/dash
d
「ダッシュは/bin/shです」)。
を使用するbash filename.sh
か、shebang行を使用してファイルを実行可能にする必要があります(chmod +x filename.sh
)。
#!/bin/bash
echo "To scan through the directories /var and /etc type 1 or 2: "
echo "1 - /var"
.
.
od -c file_name
MacからUbuntuにファイルを移動するときに確認する必要があるものの1つは、出力に「\ r」文字がありますが、\n
変換する必要がある場合はファイルの改行(使用)です。たとえば、次のようにします。
tr '\r' '\n' < file_name > new_file_name
。
答え2
いくつかの追加の選択肢:
sh filename.sh
はい
source filename.sh
そして
. filename.sh
私は1日に数回UbuntuとOSXの間を行き来してドットファイルを共有しますが、これは私には効果があるようです。
.bash_profile
参考までに、OSX関連の項目はそこに置かれ、両方のシステムに共通の項目がsource
あります。.bashrc