Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2882

bashスクリプトでlnコマンド出来ない?え?なんで!?あっれ〜知らなかったの〜ウケる〜

$
0
0
なにそれ〜ウケる〜 これが動かないパターン エラーメッセージ 適当なシェルスクリプト.sh #!/bin/bash # 直書きなら動く #ln -s ~/.emacs.d/inits-stok/autoinsert.el ~/.emacs.d/inits/001-autoinsert.el S='ln -s ~/.emacs.d/inits-stok/autoinsert.el ~/.emacs.d/inits/001-autoinsert.el' # 実行 # bash script ln: failed to create symbolic link no such file or directory ${S} $ ./適当なシェルスクリプト.sh ln: ~/.emacs.d/inits/001-autoinsert.el: No such file or directory これが動くパターン 適当なシェルスクリプトaaa.sh #!/bin/bash S='ln -s ~/.emacs.d/inits-stok/autoinsert.el ~/.emacs.d/inits/001-autoinsert.el' eval ${S} たぶんだけど rbashってあるじゃん。あれってbashの名前が違うだけのエイリアスなんだよね。 セキュリティ的観点から動作を制限してるってヤツ。 んでもって、オペレーションミスなんかで大量にゴミを生み出すような、手のつけられない状況になるようなシェルスクリプトの使い方は抑制されてんじゃねーのかなって、思うのよ。 制限下のbash、restrictedモードのbashって事でrbashをシェルに使っている場合は、evalコマンドとか刺さりそうなコマンドは動かないような気がするのね。 なので、シェルの方も変数展開してのコマンド実行なども、刺さる人には刺さる属性持ってるので制限されちゃってるんじゃないかと。 bashを使う限りじゃ、eval($ほげー)を使えばいいじゃんって話だしね。 ちなみに あっれ?動かないじゃん。 あっぁっぁ、そう言えば、昔も同じことで悩んだんだった・・・ orz={( ´,_ゝ`)プッ} じぶんへのいましめのため Qiita に書いてます。 ちなみに、今、作ってたスクリプトはこれ ~/.emacs.d/_inits-stok_2_makelink.sh #!/bin/bash # ファイル名を配列に取り込む # コメント記号の後は必ず空白が必要 TGTFNS=$(cat << 'FNEOS' autoinsert face-font all-the-icon calendar scratch swiper dired tabbar tree_speed_ber ido find-grep company ctags ediff electrict-mode org-mode howm markdown flycheck perl moccur oddmuse vim allwantfont plantuml FNEOS ) echo $TGTFNS # 配列要素の数だけループ処理を行う countLineSkiper=0 countIndex=0 for x in $TGTFNS do # echo "a:[$x]" # 次行スキップ処理 if (($countLineSkiper > 0)) ; then let --countLineSkiper # echo "skipper ${countLineSkiper}:[${x}]" continue fi # 入力要素の検査:コメント行は以降の処理をスキップする if [[ "${x}" =~ ^#.* ]]; then # echo "対象はコメント行です。スキップします" let ++countLineSkiper continue fi let ++countIndex S=$(printf "ln -s ~/.emacs.d/inits-stok/${x}.el ~/.emacs.d/inits/%03d-${x}.el" "${countIndex}") #echo "![${S}]" echo "${S}" ${S} #eval ${S} done echo "aaa" ## EOF _makelink Emacs の inits ディレクトリでファイル名のプレフィックスに数桁数値が並んでいると目が滑って辛い。 よーし、リハビリを兼ねて久しぶりにシェルスクリプト書いちゃうぞ〜! そういう現実逃避で作ってる途中です。 ほぼほぼ出来てるので、完成まで持ってかないでこのままぶん投げちゃうかもしれないです。

Viewing all articles
Browse latest Browse all 2882

Trending Articles