我该怎么做才能将光标留在 Bash 脚本中建议的同一行?
Bash 版本 = 3.2.51
它的目的是建议一个字符串,以便用户只需按 Enter。
#!/bin/sh
echo "@@@@@@@@@@
@ Enter the new plarform name [for example: our-platform-7.26-2.17-res4]:
@@@@@@@@@@"
echo "our-platform-7.26-2.17-res4"
read SuggestDefaultPlatform
echo "Stored name: " ${SuggestDefaultPlatform}
Run Code Online (Sandbox Code Playgroud)
这提示:
@@@@@@@@@@
@ Enter the new plarform name [for example: our-platform-7.26-2.17-res4]:
@@@@@@@@@@
our-platform-7.26-2.17-res4
_
Run Code Online (Sandbox Code Playgroud)
其中下划线“ _”代表光标。
我不想使用“Y/n”逻辑解决方法,将默认值分配给“ SuggestDefaultPlatform”变量
SuggestDefaultPlatform='our-platform-7.26-2.17-res4';
Run Code Online (Sandbox Code Playgroud)
然后提示一个问题,如:
Are you okay with `'our-platform-7.26-2.17-res4'` as your platform name? [Y/n]...
Run Code Online (Sandbox Code Playgroud)
相反,用户可能只想更改提示建议的几位数字,然后按 Enter。请参阅下面_“ SuggestDefaultPlatform”变量末尾的光标“ ” :
@@@@@@@@@@
@ Enter the new plarform name [for example: …Run Code Online (Sandbox Code Playgroud) 我正在编写一个 shell 脚本来在启动时在我的虚拟机中启动我的网络,因为由于某种原因它不会立即使用虚拟机的快照执行此操作。
由于eth设备以停机状态启动,因此我必须使用以下脚本获取该设备名称,然后也启动设备:
gateway=ifconfig -a | awk '/eth/ {print $1}'
dhclient $gateway
Run Code Online (Sandbox Code Playgroud)
但是我不断收到以下错误,line 1: -a: command not found. ifconfig -a然而从命令行工作。
有没有办法ifconfig -a在我的 shell 脚本中工作?
我正在 bash 脚本中读取一个 csv 文件,如下所示:
resource='/data/bscs/'
while IFS='|'read seqid fname fpath
do
echo "FILENO: $seqid"
echo "FILENAME: $fname"
echo "FILE_PATH: $fpath"
done < "report.csv"
Run Code Online (Sandbox Code Playgroud)
我的 csv 文件具有以下值:
3|sample1.txt|$资源/操作/
我希望 $resource 在 $fname 内扩展。相反,我得到了这个输出:
FILENO: 3
FILENAME: sample1.txt
SOURCE PATH: $resource/operation
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
"${fpath}"
$(echo $fpath)
我怎样才能做到这一点?
如何将彩色文本存储在变量中并稍后用颜色打印?
我从来没有在 100 次搜索中看到这个问题的答案,这都是关于 PS1 提示、内联 printf 或使用来自 ls --color 的数据。我需要自己将颜色添加到变量中,并在稍后打印彩色。
name="Hello"
name=$name"\e[36m\(Test\)\e[0m"
echo $name
printf $name
Run Code Online (Sandbox Code Playgroud)
我从中得到的输出是:
Hello \e[36m(Test)\e0m
Run Code Online (Sandbox Code Playgroud)
它不会根据变量中的数据着色。
我们如何将颜色代码存储在变量中以便稍后打印
谢谢
Jaeden "Sifo Dyas" al'Raec Ruiner
$ unset foo
$ unset bar
$ echo $foo
$ echo $bar
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
$ foo=a
$ bar=b
$ export bar
$ echo $foo
a
$ echo $bar
b
$ PATH=
$ echo $PATH
$ /bin/bash
bash: lesspipe: No such file or directory
bash: dircolors: No such file or directory
bash: ls: No such file or directory
$ echo $foo
$ echo $bar
b
$ echo $PATH
$
Run Code Online (Sandbox Code Playgroud)
正如我们所看到的,更改$PATH会影响子shell,而另一个变量需要被export编辑。为什么?
我在从主脚本创建脚本时遇到问题:
就这么简单:
cat pippo << EOF
LOGFILE=test.log
echo '#############################' >> $LOGFILE
EOF
Run Code Online (Sandbox Code Playgroud)
. 但是,当我检查 pippo 时,我得到:
LOGFILE=test.log
echo '#############################' >>
EOF
Run Code Online (Sandbox Code Playgroud)
为什么 $LOGFILE 已被替换?
在 bash 或 zsh 脚本中,如果后者在环境变量中,我如何从 url 中提取主机,例如unix.stackexchange.comfrom
http://unix.stackexchange.com/questions/ask?
我正在安装一个应用程序,但无法理解为什么安装指南告诉要向export其中一个启动文件添加命令。我没有看到它何时执行。那是一行:
export WORKON_HOME=$HOME/.virtualenvs
Run Code Online (Sandbox Code Playgroud)
我在终端中执行了一些代码,发现该export命令不起作用。为什么?
root@localhost:/home/gameboy# echo export ADAM=Boss>>/home/pythontest/.profile
root@localhost:/home/gameboy# tail /home/pythontest/.profile
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
export ADAM=Boss
root@localhost:/home/gameboy# su pythontest
pythontest@localhost:/home/gameboy$ echo $ADAM
pythontest@localhost:/home/gameboy$
Run Code Online (Sandbox Code Playgroud) 我有以下文件变量和值
# more file.txt
export worker01="sdg sdh sdi sdj sdk"
export worker02="sdg sdh sdi sdj sdm"
export worker03="sdg sdh sdi sdj sdf"
Run Code Online (Sandbox Code Playgroud)
我执行 source 以读取变量
# source file.txt
Run Code Online (Sandbox Code Playgroud)
example:
echo $worker01
sdg sdh sdi sdj sdk
Run Code Online (Sandbox Code Playgroud)
until now every thing is perfect
but now I want to read the variables from the file and print the values by simple bash loop I will read the second field and try to print value of the variable
# for i in ` …Run Code Online (Sandbox Code Playgroud) 我在这里找到了有趣的讨论并尝试了给出的解决方案 sed
如何在文件开头插入文本?
它适用于普通文本,但不适用于将文本保存在变量中时。
wolf@linux:~$ cat file.txt
1
2
3
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
将文本 ( <added text>)添加到文件的开头
wolf@linux:~$ sed -i '1s/^/<added text>\n/' file.txt
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
有用!
wolf@linux:~$ cat file.txt
<added text>
1
2
3
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
但是,当我用变量尝试它时,它不再起作用。
wolf@linux:~$ var='Text 1'
wolf@linux:~$ echo $var
Text 1
wolf@linux:~$
wolf@linux:~$ cat file.txt
1
2
3
wolf@linux:~$ sed -i '1s/^/"$var"\n/' file.txt
wolf@linux:~$ cat file.txt
"$var"
1
2
3
wolf@linux:~$
Run Code Online (Sandbox Code Playgroud)
而不是"$var",我如何调用$varinsed命令的实际值?我使用 GNU sed4.7:
sed (GNU sed) 4.7 Packaged by Debian …Run Code Online (Sandbox Code Playgroud)