Bash 如何使用$NAUTILUS\u脚本\u选定的\u文件\u路径
我编写了一个bash脚本,它如下所示:Bash 如何使用$NAUTILUS\u脚本\u选定的\u文件\u路径,bash,nautilus,Bash,Nautilus,我编写了一个bash脚本,它如下所示: #!/bin/bash D=`zenity --entry --entry-text='Folder'` pattern1=`zenity --entry --entry-text='replace'` pattern2=`zenity --entry --entry-text='by'` cd "$D" rename "s/$pattern1/$pattern2/g" * zenity --info --text="Done" 它工作得很好。 我将其添
#!/bin/bash
D=`zenity --entry --entry-text='Folder'`
pattern1=`zenity --entry --entry-text='replace'`
pattern2=`zenity --entry --entry-text='by'`
cd "$D"
rename "s/$pattern1/$pattern2/g" *
zenity --info --text="Done"
它工作得很好。我将其添加到nautilus scrips文件夹(~/.gnome2/nautilus脚本),
我做了一些改变:
#!/bin/bash
pattern1=`zenity --entry --entry-text='replace'`
if [ "$?" -eq 1 ]
then
exit
fi
pattern2=`zenity --entry --entry-text='by'`
if [ "$?" -eq 1 ]
then
exit
fi
rename "s/$pattern1/$pattern2/g" \'$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS\'
zenity --info --text="Done"
但它不起作用。我希望我能找到一些帮助
提前感谢。问题通过两种方式解决。 第一个: 使用for循环:
#!/bin/bash
pattern1=`zenity --entry --entry-text='replace'`
if [ "$?" -eq 1 ]
then
exit
fi
pattern2=`zenity --entry --entry-text='by'`
if [ "$?" -eq 1 ]
then
exit
fi
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
rename "s/$motif1/$motif2/g" "$file"
done
zenity --info --text="Done"
第二点:
使用while循环:
#!/bin/bash
pattern1=`zenity --entry --entry-text='replace'`
if [ "$?" -eq 1 ]
then
exit
fi
pattern2=`zenity --entry --entry-text='by'`
if [ "$?" -eq 1 ]
then
exit
fi
echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | while read 'file'
do
rename "s/$motif1/$motif2/g" "$file"
done
zenity --info --text="Done"
现在的问题是我为什么要这么做答案是因为$NAUTILUS\u SCRIPT\u SELECTED\u FILE\u path是一个序列
即使选择了一个文件,我们也会在$NAUTILUS_SCRIPT_selected_file_PATHS中找到文件所选路径和分隔符
您可以通过使用以下命令看到:(将其添加到脚本) 我希望这对某人有用
问题通过两种方式解决。 第一个: 使用for循环:
#!/bin/bash
pattern1=`zenity --entry --entry-text='replace'`
if [ "$?" -eq 1 ]
then
exit
fi
pattern2=`zenity --entry --entry-text='by'`
if [ "$?" -eq 1 ]
then
exit
fi
for file in $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS
do
rename "s/$motif1/$motif2/g" "$file"
done
zenity --info --text="Done"
第二点:
使用while循环:
#!/bin/bash
pattern1=`zenity --entry --entry-text='replace'`
if [ "$?" -eq 1 ]
then
exit
fi
pattern2=`zenity --entry --entry-text='by'`
if [ "$?" -eq 1 ]
then
exit
fi
echo $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS | while read 'file'
do
rename "s/$motif1/$motif2/g" "$file"
done
zenity --info --text="Done"
现在的问题是我为什么要这么做答案是因为$NAUTILUS\u SCRIPT\u SELECTED\u FILE\u path是一个序列
即使选择了一个文件,我们也会在$NAUTILUS_SCRIPT_selected_file_PATHS中找到文件所选路径和分隔符
您可以通过使用以下命令看到:(将其添加到脚本) 我希望这对某人有用
问题在标题中:我如何使用$NAUTILUS\u SCRIPT\u SELECTED\u FILE\u路径?我试过了,就像你在脚本中看到的那样,但它不起作用对不起,你不喜欢这句话问题在标题中:我如何使用$NAUTILUS\u SCRIPT\u SELECTED\u FILE\u路径?我试过了,就像你在脚本中看到的那样,但它不起作用对不起,你不喜欢这个句子